昨天說完如何使用 CloudWatch Metrics ,今天就來說說 Dashboard 吧!已經有了 Metrics ,為什麼還要使用 Dashboard 呢?因為 Dashboard 可以把不同服務建的 Metrics 集中管理,就可以在同一個地方看見整個系統的全貌!
想要使用 Dashboard ,可以到 CloudWatch 的 console 點選 Dashboard 並 Create dashboard
。
接著可以選擇你要把什麼指標加入這個 Dashboard 。昨天 debug 過程比較常用 metrics ,所以就選擇 metrics 吧!
選擇 metrics 之後,就可以從 Service 裡面挑選已經存在且想要的 metrics 加入。
以 API Gateway 為例,可以挑選 Count 、 4XXError 和 5XXError 等 metrics ,當然可以一個統計圖表可以只選擇一個 metrics ,也可以選擇把多個 metrics 放在同一個統計圖表 (不同 Service 也可以放一起)。
根據上面 debug 的流程,我選擇先觀察 API Gateway 的 Request count 和 Lambda 的 Invocations ,並把這兩個 metrics 放在一起比較,第一時間就可以猜到可能是 Lambda 數量不足的問題。
接著也撈出兩個 Service Error 的情況,藉由這個指標觀察會不會是哪個 Service 造成 5XXError
。
當然,呼叫 API 少不了要知道 Latency ,所以也把 API Gateway 、 Lambda 和 DynamoDB 的 Latency 一起放進來比較,如果真的有 Latency 過高,不符合預期的狀況,可以快速猜測 bottleneck 在哪裡。
Throttles 的部分就是觀察 Lambda 是不是有丟棄 Request 的情形,可以多一個證據確認 Lambda 的數量是不是有問題。
以上就是使用 CloudWatch Metics 和 Dashboard 追蹤系統問題的過程,自己走一遍之後發現,設計 Dashboard 需要累積一些平常 debug 的經驗,比較知道要看哪些 metrics 。
雖然 Dashboard 很方便,可以把每個 Service 的統計數據都抓出來,但要觀察哪些數據才是真的能幫你抓出該系統的異常,不然設計出很漂亮的 Dashboard ,五花八門的圖表如果派不上用場,會失去使用 Dashboard 的目的。